// 配置axios默认值
axios.defaults.baseURL = 'http://localhost:9200';
axios.defaults.headers.common['Content-Type'] = 'application/json';

// 添加请求拦截器，在每个请求中添加token
axios.interceptors.request.use(
    config => {
        const token = localStorage.getItem('token');
        if (token) {
            config.headers['Authorization'] = `Bearer ${token}`;
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

// 创建Vue应用
const app = Vue.createApp({
    data() {
        return {
            // 当前用户信息
            currentUser: JSON.parse(localStorage.getItem('currentUser') || '{}'),
            
            // 项目列表
            projects: [],
            
            // 新建项目表单数据
            newProject: {
                projectName: '',
                projectDesc: '',
                projectType: '',
                languageType: '',
                projectStatus: ''
            },
            
            // 提交状态
            isSubmitting: false,
            
            // 创建项目模态框实例
            createProjectModal: null
        };
    },
    
    mounted() {
        // 初始化Bootstrap模态框
        this.createProjectModal = new bootstrap.Modal(document.getElementById('createProjectModal'));
        
        // 检查用户是否已登录
        if (!this.currentUser.id) {
            // 未登录，跳转到登录页
            // window.location.href = 'login.html';
            // 为了演示，设置一个模拟用户
            this.currentUser = {
                id: 1,
                userName: '测试用户',
                phone: '13800138000'
            };
            localStorage.setItem('currentUser', JSON.stringify(this.currentUser));
        }
        
        // 加载项目列表
        this.loadProjects();
    },
    
    methods: {
        // 显示创建项目模态框
        showCreateProjectModal() {
            // 重置表单
            this.newProject = {
                projectName: '',
                projectDesc: '',
                projectType: '',
                languageType: '',
                projectStatus: ''
            };
            
            // 显示模态框
            this.createProjectModal.show();
        },
        
        // 创建项目
        async createProject() {
            // 表单验证
            if (!this.newProject.projectName || !this.newProject.projectType || 
                !this.newProject.languageType || !this.newProject.projectStatus) {
                alert('请填写所有必填字段');
                return;
            }
            
            try {
                this.isSubmitting = true;
                
                // 准备请求数据
                const projectData = {
                    ...this.newProject,
                    userId: this.currentUser.id
                };
                
                // 发送请求
                const response = await axios.post('/project/create', projectData);
                
                // 检查响应
                if (response.data && response.data.success) {
                    // 创建成功
                    alert('项目创建成功');
                    
                    // 关闭模态框
                    this.createProjectModal.hide();
                    
                    // 重新加载项目列表
                    this.loadProjects();
                } else {
                    // 创建失败
                    alert(`项目创建失败: ${response.data.message || '未知错误'}`);
                }
            } catch (error) {
                console.error('创建项目出错:', error);
                alert(`创建项目出错: ${error.response?.data?.message || error.message || '未知错误'}`);
            } finally {
                this.isSubmitting = false;
            }
        },
        
        // 加载项目列表
        async loadProjects() {
            try {
                const response = await axios.get(`/project/list/${this.currentUser.id}`);
                
                if (response.data && response.data.success) {
                    this.projects = response.data.data || [];
                } else {
                    console.error('加载项目列表失败:', response.data.message);
                }
            } catch (error) {
                console.error('加载项目列表出错:', error);
            }
        },
        
        // 编辑项目
        editProject(project) {
            // 实际项目中这里会打开编辑模态框
            alert(`编辑项目: ${project.projectName}`);
        },
        
        // 删除项目
        async deleteProject(projectId) {
            if (!confirm('确定要删除这个项目吗？此操作不可恢复。')) {
                return;
            }
            
            try {
                const response = await axios.delete(`/project/delete/${projectId}`);
                
                if (response.data && response.data.success) {
                    alert('项目删除成功');
                    this.loadProjects();
                } else {
                    alert(`项目删除失败: ${response.data.message || '未知错误'}`);
                }
            } catch (error) {
                console.error('删除项目出错:', error);
                alert(`删除项目出错: ${error.response?.data?.message || error.message || '未知错误'}`);
            }
        },
        
        // 退出登录
        logout() {
            localStorage.removeItem('currentUser');
            localStorage.removeItem('token');
            // window.location.href = 'login.html';
            alert('已退出登录');
        },
        
        // 格式化日期
        formatDate(dateString) {
            if (!dateString) return '未知';
            const date = new Date(dateString);
            return date.toLocaleDateString('zh-CN', {
                year: 'numeric',
                month: '2-digit',
                day: '2-digit',
                hour: '2-digit',
                minute: '2-digit'
            });
        },
        
        // 获取项目类型文本
        getProjectTypeText(type) {
            const types = {
                'PERSONAL': '个人项目',
                'COMPANY': '公司项目',
                'OPEN_SOURCE': '开源项目'
            };
            return types[type] || type;
        },
        
        // 获取语言类型文本
        getLanguageTypeText(type) {
            const types = {
                'JAVA': 'Java',
                'KOTLIN': 'Kotlin',
                'PYTHON': 'Python',
                'REACT': 'React',
                'ANDROID': 'Android'
            };
            return types[type] || type;
        },
        
        // 获取项目状态文本
        getStatusText(status) {
            const statuses = {
                'DEVELOPING': '开发中',
                'COMPLETED': '已完成',
                'ABANDONED': '已废弃'
            };
            return statuses[status] || status;
        },
        
        // 获取项目类型徽章样式
        getProjectTypeBadgeClass(type) {
            const classes = {
                'PERSONAL': 'badge-personal text-white',
                'COMPANY': 'badge-company text-white',
                'OPEN_SOURCE': 'badge-open-source text-white'
            };
            return classes[type] || 'bg-secondary';
        },
        
        // 获取项目状态徽章样式
        getStatusBadgeClass(status) {
            const classes = {
                'DEVELOPING': 'badge-developing text-white',
                'COMPLETED': 'badge-completed text-white',
                'ABANDONED': 'badge-abandoned text-white'
            };
            return classes[status] || 'bg-secondary';
        }
    }
});

// 挂载Vue应用
app.mount('#app');
